An input/output memory management unit (IOMMU) may provide communication between a direct memory access (DMA)-capable device (e.g., a graphics card, a network card, a sound card, etc.) and main memory. The IOMMU may translate a virtual memory address, identified in a direct memory access request received from the DMA-capable device, into a physical address of the main memory. The IOMMU may be configured such that memory access may be provided to the DMA-capable device without being routed via a central processing unit (CPU). For example, the IOMMU may receive, from the DMA-capable device, a memory access request that identifies a virtual memory address, and may look up the virtual memory address in a page table that maps the virtual memory address to a physical memory address. Information stored in the physical memory address may then be read from or written to by the DMA-capable device.